package com.gg.user.system.controller;

import com.gg.common.result.CommonResult;
import com.gg.registration.vo.hosp.HospitalQueryVo;
import com.gg.user.system.feignClient.DictFeignClient;
import com.gg.user.system.feignClient.HospitalFeignClient;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;


/**
 * @author chenjunjia
 * @date 2022/4/13 14:02
 */
@RestController
@RequestMapping("user/system/hospital")
public class HospitalApiController {

    @Resource
    private HospitalFeignClient hospitalFeignClient;

    @Resource
    private DictFeignClient dictFeignClient;

    /**
     * 分页查询医院列表
     *
     * 这里有个坑，有body的时候，feign会自动将GET变成POST
     *
     * @param page 当前页
     * @param limit 每页记录条数
     * @return 统一返回结果集 
     */
    @GetMapping("findList/{page}/{limit}")
    public CommonResult findList(@PathVariable("page") Integer page,
                                 @PathVariable("limit") Integer limit,
                                 HospitalQueryVo hospitalQueryVo) {
        HospitalQueryVo hospitalQueryVo1 = hospitalQueryVo;
        CommonResult hospitalList = hospitalFeignClient.getList(page, limit, hospitalQueryVo);
        return hospitalList;
    }

    /**
     * 根据医院名称模糊查询医院列表
     * @param hosname 医院名称
     * @return 统一返回结果集
     */
    @GetMapping("findByHosname/{hosname}")
    public CommonResult findByHosname(@PathVariable("hosname") String hosname) {
        return hospitalFeignClient.findByHosname(hosname);
    }

    /**
     * 根据dictCode查询子成员
     * 这里用作查询医院等级，dictCode 固定Hospital和Beijing了
     * @param dictCode dict类型
     * @return 统一返回结果集
     */
    @GetMapping("getChildByDictCode/{dictCode}")
    CommonResult getChildByDictCode(@PathVariable("dictCode") String dictCode) {
        return dictFeignClient.getChildByDictCode(dictCode);
    }

    /**
     * 通过id获取孩子字段
     * @param id 字段id值
     * @return 统一返回结果
     */
    @GetMapping("getChildById/{id}")
    CommonResult getChildById(@PathVariable("id") Long id) {
        return dictFeignClient.getChildById(id);
    }

    /**
     * 树形查询科室信息
     * @param hoscode 医院编号
     * @return 统一返回结果集
     */
    @GetMapping("findDepartment/{hoscode}")
    CommonResult getDepartmentTree(@PathVariable("hoscode") String hoscode) {
        return hospitalFeignClient.findDepartment(hoscode);
    }

    /**
     * 获取医院详情和预约详情
     * @param hoscode 医院编号
     * @return 统一返回结果集
     */
    @GetMapping("findHospDetail/{hoscode}")
    CommonResult findHospDetail(@PathVariable("hoscode") String hoscode) {
        return hospitalFeignClient.findHospDetail(hoscode);
    }

}
